#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

#define U "wxk"
void Usage(const char* ptr)
{
  printf("Usage:%s  -[-a|-b|-c]\n", ptr);
  exit(0);
}
//int main(int argc, char *argv[], char *envp[])
//int main()
int main(int argc, char* argv[], char** envp)
{
  //char* us = getenv("USER"); 
  //if((strcmp(us, U) == 0))
  //{
  //  printf("sucess!\n");
  //}
  //else{
  //  printf("用户非法!\n");
  //}



  //帮助了解进程优先级 ps -l
 // while(1)
 // {
 //   printf("#");
 //   fflush(stdout);
 //   sleep(1);
 // }

//  if(argc != 2)
//    Usage(argv[0]);
//  else if(strcmp(argv[1], "-a") == 0) printf("查看当前路径下的文件名\n");
//  else if(strcmp(argv[1], "-b") == 0) printf("查看当前路径下的详细文件信息\n");
//  else if(strcmp(argv[1], "-c") == 0) printf("查看当前路径下的文件名(包含隐藏文件\n)");
//  else{
//    printf("功能待续\n");
//  }
  //argc表示的是命名行参数的个数，argv表示的是命名行参数表，argv[0]就是命名名称，后面的就是选项
  
  //本地变量不会被写入环境变量表中，所以也不能被子进程继承
  //export可以将变量写入环境变量表中被子进程继承---export maval=100
  //printf("getenv:%s\n", getenv("myval"));
  
  //获取环境变量表
  for(int i = 0; envp[i]; ++i)
  {
    printf("envp[%d]:%s\n", i, envp[i]);
  }
  extern char** environ; 
  for(int i = 0; environ[i]; ++i) 
  { 
    printf("enionp[%d]:%s\n", i, environ[i]); 
  }

  return 0;
}
